package thread;

/**
 * @author zxl
 * @version 1.0
 * @date 2021/10/26 15:26
 */
public class test1 {
    /**
     * Java多线程实现的方式
     *     1.继承Thread类，重写run方法
     *     2.实现Runnable接口，重写run方法，实现Runnable接口的实现类的实例对象作为Thread构造函数的target
     *     3.通过Callable和FutureTask创建线程
     *
     * 线程同步方法
     * wait()：使线程处于一种等待状态，释放所持有的对象锁。
     * sleep()：使一个正在运行的线程处于睡眠状态，是一个静态方法，调用它时要捕获InterruptedException异常，不释放对象锁。
     * notify()：唤醒一个正在等待状态的线程。注意调用此方法时，并不能确切知道唤醒的是哪一个等待状态的线程，是由JVM来决定唤醒哪个线程，不是由线程优先级决定的。
     * notifyAll()：唤醒所有等待状态的线程，注意并不是给所有唤醒线程一个对象锁，而是让它们竞争。
     */

    public static void main(String[] args) {
        Thread.currentThread().setPriority(10);
        String property = System.getProperty("user.dir");
    }

}
//继承thread实现run方法
class test01 extends Thread{
    @Override
    public void run() {

    }
}
//实现runnable接口
class test02 implements Runnable{
    @Override
    public void run() {

    }
}

